from openpyxl import Workbook, load_workbook
from openpyxl.utils import get_column_letter

# 官方文档 https://openpyxl.readthedocs.io/en/latest/index.html

def new_workbook():
    # 在内存中创建一个workbook对象，而且会至少创建一个 worksheet
    wb = Workbook()
    #获取当前活跃的worksheet,默认就是第一个worksheet
    ws = wb.active
    #设置单元格的值，A1等于6(测试可知openpyxl的行和列编号从1开始计算)，B1等于7
    ws.cell(row=1, column=1).value = 6
    ws['B1'] = 7
    
    #从第2行开始，写入9行10列数据，值为对应的列序号A、B、C、D...
    for row in range(2,11):
        for col in range (1,11):
            ws.cell(row=row, column=col).value = get_column_letter(col)
            #可以使用append插入一行数据
            ws.append(["我","你","她"])
            #保存
            wb.save(filename="./a.xlsx")

def read_workbook():
    #打开一个workbook
    wb = load_workbook(filename="./a.xlsx")
    
    #获取当前活跃的worksheet,默认就是第一个worksheet
    #ws = wb.active
    
    #当然也可以使用下面的方法
    
    #获取所有表格(worksheet)的名字
    sheets = wb.get_sheet_names()
    #第一个表格的名称
    sheet_first = sheets[0]
    #获取特定的worksheet
    ws = wb.get_sheet_by_name(sheet_first)
    
    #获取表格所有行和列，两者都是可迭代的
    rows = ws.rows
    columns = ws.columns
    
    #迭代所有的行
    for row in rows:
        line = [col.value for col in row]
        print (line)
    
    #通过坐标读取值
    print (ws.cell('A1').value) # A表示列,1表示行
    print (ws.cell(row=1, column=1).value)

if __name__ == '__main__':
    # xlsx操作api
    new_workbook()
    read_workbook()